package com.xxx.st;

/**
 * @version v1.0
 * @Description:
 * @Author zhanzhongxin
 * @Date 2021/7/14 15:00
 * @Copyright 博为峰
 */
public class Student {
    public String name;//实例变量
    public int age;//实例变量
    public static String claName = "JD13";//静态变量（类变量）

    /*
      static(静态)是一个修饰符，用于修饰成员
      1.static修饰的成员被所有的对象共享
      2.static修饰的成员随着类的加载而存在
      3.static修饰的成员可以通过类名调用  类名.静态成员
      4.static修饰的数据是共享数据，对象中的数据是特有数据
     */

    /*
       实例变量和静态变量的区别:
       1.生命周期不同
         实例变量随着对象的创建而存在，随着对象的销毁而释放
         静态变量随着类的加载而存在，随着类的卸载而释放
       2.调用方法不同
         实例变量只能被对象调用
         静态变量可以被对象调用，还可以被类调用
       3.存储位置不同
         实例变量存在的堆内存的对象中
         静态变量存在方法区的静态区中
     */

    /*
       注意事项：
       1.静态方法中只能访问静态成员
       2.非静态方法中既可以访问静态又可以访问非静态
     */

    //静态方法
    public static void show() {
//        System.out.println(Student.claName);
//        System.out.println(name);
        System.out.println("静态方法");
    }

    public void show2(){
//        System.out.println(Student.claName);
        System.out.println(this.name);
        System.out.println("非静态方法");
    }
}
